home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1997 / MacHack 1997.toast / Hacks / Hacks ’97 / Animated Icons / Source / IconSuitePatches.h < prev    next >
Text File  |  1997-07-02  |  6KB  |  117 lines

  1. #ifndef __ICONSUITEPATCHES__
  2. #define    __ICONSUITEPATCHES__
  3.  
  4. #include <Icons.h>
  5.  
  6. typedef void* IconRef;
  7. typedef unsigned long IconServicesUsageFlags;
  8.  
  9. #if PATCHTRAPS
  10.  
  11. pascal OSErr CallGetIconSuite ( Handle *theIconSuite, SInt16 theResID, IconSelectorValue selector );
  12. pascal OSErr CallPlotIconSuite ( const Rect *theRect, IconAlignmentType align, IconTransformType transform, Handle theIconSuite );
  13. pascal OSErr CallDisposeIconSuite ( Handle theIconSuite, Boolean disposeData );
  14. pascal OSErr CallGetIconRefFromFile ( const FSSpec *theFile, IconRef *iconRef, SInt16 *theLabel );
  15. pascal OSErr CallGetIconRefFromFileInfo ( const FSSpec *theFile, IconRef *iconRef, OSType creator, OSType fileType, Boolean hasCustomIcon );
  16. pascal OSErr CallGetIconRefFromFolderInfo ( SInt16 vRefNum, SInt32 folderID, IconRef *iconRef, OSType fileType, Boolean hasCustomIcon );
  17. pascal OSErr CallPlotIconRef ( const Rect *theRect, IconAlignmentType align, IconTransformType transform, IconServicesUsageFlags iconServicesUsageFlags, IconRef theIconRef );
  18. pascal OSErr CallDisposeIconRef ( IconRef theIconRef );
  19.  
  20. extern pascal OSErr GetIconRefFromFileInfo(const FSSpec *theFile, IconRef *iconRef, OSType creatorCode, OSType fileType, Boolean hasCustomIcon)
  21.  TWOWORDINLINE(0x7003, 0xAA75);
  22. extern pascal OSErr PlotIconRef(const Rect *theRect, IconAlignmentType align, IconTransformType transform, IconServicesUsageFlags iconServicesUsageFlags, IconRef theIconRef)
  23.  TWOWORDINLINE(0x700E, 0xAA75);
  24. extern pascal OSErr DisposeIconRef(IconRef theIconRef)
  25.  TWOWORDINLINE(0x700D, 0xAA75);
  26.  
  27. pascal void CallCopyBits ( BitMap* srcBits, BitMap* destBits,
  28.                               const Rect* srcRect, const Rect* destRect,
  29.                               short mode, 
  30.                               RgnHandle maskRgn );
  31. pascal OSErr CallNewGWorldRoutine ( GWorldPtr *offscreenGWorld, short PixelDepth,
  32.                                const Rect *boundsRect, CTabHandle cTable,
  33.                                GDHandle aGDevice, GWorldFlags flags );
  34. pascal OSErr CallUpdateGWorldRoutine ( GWorldPtr *offscreenGWorld, short PixelDepth,
  35.                                const Rect *boundsRect, CTabHandle cTable,
  36.                                GDHandle aGDevice, GWorldFlags flags );
  37. pascal void CallDisposeGWorld ( GWorldPtr offscreenGWorld );
  38.  
  39. #else
  40.  
  41. #define    GetIconSuite            GetIconSuitePatch
  42. #define PlotIconSuite            PlotIconSuitePatch
  43. #define    DisposeIconSuite        DisposeIconSuitePatch
  44.  
  45.  
  46. #define    GetIconRefFromFile            GetIconRefFromFilePatch
  47. #define GetIconRefFromFileInfo        GetIconRefFromFileInfoPatch
  48. #define    GetIconRefFromFolderInfo    GetIconRefFromFolderInfoPatch
  49. #define    PlotIconRef                 PlotIconRefPatch
  50. #define    DisposeIconRef                DisposeIconRefPatch
  51.  
  52. extern pascal OSErr CallGetIconSuite(Handle *theIconSuite, SInt16 theResID, IconSelectorValue selector)
  53.  THREEWORDINLINE(0x303C, 0x0501, 0xABC9);
  54. extern pascal OSErr CallDisposeIconSuite(Handle theIconSuite, Boolean disposeData)
  55.  THREEWORDINLINE(0x303C, 0x0302, 0xABC9);
  56. extern pascal OSErr CallPlotIconSuite(const Rect *theRect, IconAlignmentType align, IconTransformType transform, Handle theIconSuite)
  57.  THREEWORDINLINE(0x303C, 0x0603, 0xABC9);
  58.  
  59. extern pascal OSErr CallNewIconSuiteFromFile(const FSSpec *theFile, IconSelectorValue whichIcons, Handle *iconSuite, IconServicesUsageFlags iconServicesUsageFlags)
  60.  TWOWORDINLINE(0x7001, 0xAA75);
  61. extern pascal OSErr CallGetIconRefFromFile(const FSSpec *theFile, IconRef *iconRef, SInt16 *theLabel)
  62.  TWOWORDINLINE(0x7002, 0xAA75);
  63. extern pascal OSErr CallGetIconRefFromFileInfo(const FSSpec *theFile, IconRef *iconRef, OSType creatorCode, OSType fileType, Boolean hasCustomIcon)
  64.  TWOWORDINLINE(0x7003, 0xAA75);
  65. extern pascal OSErr CallGetIconRefFromFolderInfo(SInt16 vRefNum, SInt32 folderID, IconRef *iconRef, OSType fileType, Boolean hasCustomIcon)
  66.  TWOWORDINLINE(0x7004, 0xAA75);
  67. extern pascal OSErr CallPlotIconRef(const Rect *theRect, IconAlignmentType align, IconTransformType transform, IconServicesUsageFlags iconServicesUsageFlags, IconRef theIconRef)
  68.  TWOWORDINLINE(0x700E, 0xAA75);
  69. extern pascal OSErr CallDisposeIconRef(IconRef theIconRef)
  70.  TWOWORDINLINE(0x700D, 0xAA75);
  71.  
  72. #endif
  73.  
  74. //
  75. //    These are the entry points for our trap patches
  76. //
  77. pascal void InstallAllUniversalPatches ( );
  78.  
  79. pascal OSErr IconUtilitiesTrapPatch ();
  80. pascal OSErr IconServicesTrapPatch ();
  81. pascal void InitGrafPatch ( GrafPtr );
  82.  
  83. pascal void jGNEFilter ( );
  84. pascal Boolean MyGNEFilterRoutine ( EventRecord* event );
  85.  
  86. pascal void InstallIconUtilitiesPatches ( );
  87. pascal void InstallIconServicesPatches ( );
  88. pascal void InstallGNEFilter ( );
  89. pascal void InstallDisposeWindowPatch ( );
  90. pascal void InstallCopyBitsPatch ( );
  91.  
  92. pascal OSErr NewIconSuiteFromFilePatch (const FSSpec *spec, IconSelectorValue whichIcons, Handle *iconSuite, IconServicesUsageFlags iconServicesUsageFlags);
  93. pascal OSErr GetIconSuitePatch (Handle *theIconSuite, SInt16 theResID, IconSelectorValue selector);
  94. pascal OSErr PlotIconSuitePatch (const Rect *theRect, IconAlignmentType align, IconTransformType transform, Handle theIconSuite);
  95. pascal OSErr DisposeIconSuitePatch(Handle theIconSuite, Boolean disposeData);
  96. pascal OSErr GetIconRefFromFilePatch ( const FSSpec* spec, IconRef *theIconRef, SInt16* label );
  97. pascal OSErr GetIconRefFromFileInfoPatch ( const FSSpec *spec, IconRef *iconRef, OSType creatorCode, OSType fileType, Boolean hasCustomIcon );
  98. pascal OSErr GetIconRefFromFolderInfoPatch (SInt16 vRefNum, SInt32 folderID, IconRef *iconRef, OSType fileType, Boolean hasCustomIcon);
  99. pascal OSErr PlotIconSuitePatch (const Rect *theRect, IconAlignmentType align, IconTransformType transform, Handle theIconSuite);
  100. pascal OSErr PlotIconRefPatch (const Rect *theRect, IconAlignmentType align, IconTransformType transform, IconServicesUsageFlags iconServicesUsageFlags, IconRef iconRef );
  101. pascal OSErr DisposeIconRefPatch ( IconRef iconRef );
  102.  
  103. pascal void DisposeWindowPatch ( WindowPtr windowP );
  104. pascal asm void HideWindowPatch ( GrafPtr );
  105. pascal void CopyBitsPatch ( BitMap* srcBits, BitMap* destBits,
  106.                               const Rect* srcRect, const Rect* destRect,
  107.                               short mode, RgnHandle maskRgn );
  108. asm pascal void QDExtensionsPatch ( );
  109.  
  110. pascal Boolean MyGNEFilter ( EventRecord* event );
  111.  
  112. enum
  113. {
  114.     errForceCallToOriginalPlotIcon        =    -29500
  115. };
  116.  
  117. #endif